package com.example.repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class InMemoryChatHistoryRepository implements ChatHistoryRepository{

    private final Map<String, List<String>> chatHistory = new HashMap<>();

    // 保存会话记录
    @Override
    public void save(String type, String chatId) {
        //先判断该类型会话是否已经存在会话id列表，如果不存在则创建一个空列表
        if (!chatHistory.containsKey(type)){
            chatHistory.put(type, List.of());
        }
        //从缓存中获取该类型会话的会话id列表
        List<String> chatHistoryList = chatHistory.get(type);
        //如果该类型列表中已经存在该会话id，则直接返回
        if (chatHistoryList.contains(chatId)){
            return;
        }
        //否则将新的会话id添加到该类型列表中
        chatHistoryList.add(chatId);
    }

//    根据会话类型获取会话ID记录
    @Override
    public List<String> get(String type) {
        List<String> chatHistoryList = chatHistory.get(type);
        //如果该类型列表不存在，则返回一个空列表
        return chatHistoryList != null ? chatHistoryList : List.of();
    }
}
